﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Idlesoft.ShellAnywhereLanguage
{
	public enum LexemeType : ushort
	{
		Undefined	= 0,
		Param		= 1,
		Target		= 2,
		Verb		= 4,
		Action		= 8
	}

	public interface ILexeme<TItem>
		where TItem : class, IParam
	{
		bool HasItems { get; }
		TItem Head { get; }
		TItem[] Items { get; }
		bool IsMatched { get; }
		bool IsUnmatched { get; }
		int Dot { get; }
		string Matched { get; }
		string[] Unmatched { get; }
		TItem MatchedItem { get; }
		TItem[] UnmatchedItems { get; }
		//string Matched();
		//string[] Unmatched();
		//TItem MatchedItem();
		//TItem[] UnmatchedItems();
	}
}
